package com.example.design.dahua.strategy.new2simplefactorycash;

/**
 * @author ebnew
 * 测试类
 * 简单工厂模式虽然也能解决这个问题，但这个模式只是解决对象的创建问题，由于工厂本身包含了所有的收费方式
 * 商场可能经常性的改变打折和返利额度，每次维护或扩展收费方式都要改动这个工厂，以至于代买需要重新编译部署
 * 这是很糟糕的处理方式，所以简单工厂并不是最优解。
 * 面对算法的时常变动，应该选择更好的方式，比如策略模式。
 */
public class CashTest {
    public static void main(String[] args) {

        AbstractCash cash = CashFactory.createAcceptCash("正常收费");
        double money = cash.acceptCash(300);
        System.out.println("正常收费: " + money);

        cash = CashFactory.createAcceptCash("打8折");
        money = cash.acceptCash(300);
        System.out.println("打8折: " + money);

        cash = CashFactory.createAcceptCash("满300减100");
        money = cash.acceptCash(300);
        System.out.println("满300减100: " + money);

    }
}
